There is an increasing desire on the part of two or more parties to share an Internet or web-browsing session. One common example is a shared online shopping experience. For instance, one person looking at a new product online may wish to ask another (remotely located) person “do you like this”? The first person would normally then follow up (or couple to) the question by a sending a link (i.e. a Uniform Resource Locator (URL)) to the web page containing the picture of the product currently being viewed to the other person. That is, send the second person a link to the currently viewed web page such that upon clicking the link, a web browser would open the page for viewing by the second person. If additional people were involved (e.g. the first person wanted to have the opinions of others as well), a similar process for sharing the link and the related information would be followed, e.g. via pasting a link into instant messenger (IM).
Another example of a shared web-browsing or online experience would be online lecture notes of a course displayed on a web page. The viewers of the syllabus could navigate through the notes. Traditional arrangements do not provide the different viewers efficient delivery of information about what the other viewers of the syllabus have or are currently looking at while maintaining the ability for the users to independently browse the online document(s). A solution mentioned above is to send a separate communication (e.g. instant text message) describing what has been or is being viewed or to share URLs such that each person is viewing the same page in the session.
Another conventional solution is to utilize a product that provides all monitors with the same view (e.g. WEBEX) such that one person (i.e. a leader) can drive the other viewers' (i.e. followers) monitors. A major shortcoming of this solution is that there is a great amount of data that is necessarily transferred between users (i.e. sent over an Internet connection). Conventional solutions such as WEBEX solve the view-sharing problem by sharing everything or a subset of everything (e.g. when a leader moves his or her mouse on the machine it moves the mouse in the other person's (follower's) view; or, when one person closes a window in the browser it closes the same window in the other person's view). That is, all information is shared and it is all essentially a rendering of the first person's (leader's) desktop view. However, a large amount of information is necessarily exchanged and the leader expects from the other person some input (e.g. mouse clicks) such that the leader can control the remote view. Moreover there is a lack of independence when participating in such an online session.
Thus, given a collaborative web-browsing session, the kind of browsing one can do has been essentially limited to simple URL requests. Some requests, such as events initiated by JAVA script or parts of an embedded component, such as a FLASH object, are unavailable. This means, for instance, that if users were sharing a video, the users could not pause the movie on all instances in the session. Due to the proliferation of this type of media embedded in the web experience, this limits the users' experience in a shared session.
These arrangements for sharing an Internet or web-browsing experience do not result in a truly collaborative/shared browsing experience where each party involved can fully participate by being efficiently informed of the others' navigation behavior while being free to do their own browsing online. Therefore, there is a need for a new solution that addresses the shortcomings of the conventional arrangements summarized above.